//package com.kssoft.demo.spider.head;
//
//import net.lightbody.bmp.client.ClientUtil;
//import net.lightbody.bmp.proxy.ProxyServer;
//import org.openqa.selenium.Proxy;
//import org.openqa.selenium.WebDriver;
//import org.openqa.selenium.chrome.ChromeDriver;
//import org.openqa.selenium.chrome.ChromeOptions;
//import io.github.bonigarcia.wdm.WebDriverManager;
//
//import java.util.List;
//import java.util.Map;
//
//public class SeleniumWithBrowserMob {
//
//    public static void main(String[] args) {
//        // 初始化 BrowserMob Proxy
//        ProxyServer proxyServer = new ProxyServer(0);
//        try {
//            // 启动 Proxy 服务器
//            proxyServer.start();
//
//            // 获取代理地址
//            Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxyServer);
//
//            // 配置 Selenium 使用代理
//            ChromeOptions options = new ChromeOptions();
//            options.setProxy(seleniumProxy);
//
//            // 启动 WebDriver
//            WebDriverManager.chromedriver().setup();
//            WebDriver driver = new ChromeDriver(options);
//
//            // 配置代理来捕获所有 HTTP 请求
//            proxyServer.enableHarCaptureTypes(ProxyServer.HarCaptureType.REQUEST_CONTENT, ProxyServer.HarCaptureType.RESPONSE_CONTENT);
//
//            // 访问目标网站
//            driver.get("https://example.com");
//
//            // 获取 HTTP 请求头
//            List<Map<String, String>> requestHeaders = proxyServer.getHar().getLog().getEntries();
//            for (Map<String, String> headers : requestHeaders) {
//                String requestUrl = headers.get("url");
//                if (requestUrl.contains("example.com")) { // 过滤你想要的请求
//                    Map<String, String> headerMap = headers.get("request").getHeaders();
//                    String token = headerMap.get("Authorization");  // 这里假设 token 在 Authorization header 中
//                    System.out.println("Token: " + token);
//                }
//            }
//
//            // 关闭 WebDriver 和 Proxy 服务器
//            driver.quit();
//            proxyServer.stop();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//}
